package Day02;

import java.util.ArrayList;
import java.util.Collections;

/**
 * 高精度减法
 * C = A / b  商是C，余数是 r
 */
public class Div {

    public static ArrayList<Integer> div(ArrayList<Integer> A, int b) {
        ArrayList<Integer> res = new ArrayList<>();
        int r = 0;
        // 此处计算从高位开始，存进去的也是高位
        for (int i = A.size() - 1; i >= 0; i--) {
            r = r * 10 + A.get(i);
            res.add(r / b);
            r %= b;
        }
        System.out.println("r = " + r);
        // 去掉前导0
        for (int i = 0; i < res.size(); i++) {
            int size = res.size();
            if (res.get(i) == 0 && res.size() > 0) {
                res.remove(i);
            } else {
                break;
            }
        }
        return res;
    }

    public static void main(String[] args) {
        String a = "2333";
        int b = 15;
        ArrayList<Integer> A = new ArrayList<>();
        ArrayList<Integer> res = new ArrayList<>();
        for (int i = a.length() - 1; i >= 0; i--) {
            A.add(a.charAt(i) - '0');
        }
        res = div(A, b);
        for (int i = 0; i < res.size(); i++) {
            System.out.print(res.get(i));
        }
    }
}


